package com.battle.pojo.param.trainingSolo;

import com.battle.pojo.param.trainingSoloDetails.CreateTrainingSoloDetailsParam;
import com.battle.pojo.param.trainingSoloDetails.CreateTrainingSoloProgramParam;
import jakarta.persistence.Column;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.*;
import java.util.List;


/**
* 【描 述】：
* 【环 境】：J2SE 17
* 【详 细】：
*
*/
@Data
public class CreateTrainingSoloParam {


    /**
     * 状态：0-待提交 1-已提交
     */
    @Column()
    private Integer status;

    /**
     * 训练日期
     */
    @Column
    private LocalDate trainingDate;

    /**
     * 训练部门id
     */
    @Column()
    private Long departmentId;

    /**
     * 训练日期类型：0-上午 1-下午
     */
    @Column()
    private Integer trainingDateType;

    /**
     * 训练地点
     */
    @Column()
    private String trainingPlace;

    /**
     * 缺训人员ids
     */
    @Column()
    private List<AbsentPersonParam> absentPerson;

    /**
     * 训练项目数量
     */
    @Column()
    private Integer programCount;

    /**
     * 训练项目ids
     */
    @Column()
    @NotEmpty
    private List<Long> programIds;

    /**
     * 应训人数
     */
    @Column()
    private Integer shouldTrainingCount;

    /**
     * 实训人数
     */
    @Column()
    private Integer actualTrainingCount;

    /**
     * 不合格率
     */
    @Column()
    private BigDecimal unqualifiedRate=BigDecimal.ZERO;

    /**
     * 达标率
     */
    @Column()
    private BigDecimal qualifiedRate=BigDecimal.ZERO;

    /**
     * 良好率
     */
    @Column()
    private BigDecimal goodRate=BigDecimal.ZERO;

    /**
     * 优秀率
     */
    @Column()
    private BigDecimal excellentRate;

    /**
     * 训练成绩
     */
    @NotEmpty
    private List<CreateTrainingSoloProgramParam> programParams;

}